Lower priced Solid State Drives (SSD) are typically manufactured using multi-level cell (MLC) flash memory for increased data capacity, but MLC is less reliable than single-level cell (SLC) flash memory. Consumer SSD manufacturers have mitigated such problems by employing interleaving and/or providing excess capacity in conjunction with wear-leveling algorithms. MLC flash endurance, however, has not been proven acceptable for enterprise SSD applications. Even with the increased data capacity of MLC, using MLC in enterprise applications becomes more expensive because of its disproportionately large decrease in program/erase (P/E) cycles over time due to increased (wear causing) stresses required to read, program and erase the flash, causing a gradual degradation in endurance.
Conventional trellis coded modulation (TCM) has been used to improve error correcting performance to extend the life memory devices, including flash memory. TCM and other demapping techniques use Euclidean distance as a measurement for branch metrics and/or cumulative distances. The reason Euclidean distances have been used is that the noise in the channel has been viewed as a pure additive White Gaussian noise that obeys a normal distribution closely, and this noise is not dependent upon the signal level used to program the individual memory cells. Thus, in current modulation schemes, including those used with flash-channel devices, the programmed levels of the cells are presumed to take on symmetrical, normal distributions.